package org.jeecg.modules.chg.controller;

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.FileOutputStream;

public class TablePdf {

    public static void main(String[] args) throws Exception {

        String[][] context = {{"第一节", "语文", "数学", "外语", "语文", "数学"},
                {"第二节", "数学", "语文", "语文", "数学", "外语"},
                {"第三节", "自然", "美术", "数学", "自然", "体育"},
                {"第四节", "音乐", "英语", "体育", "英语", "劳动"}};

        // 创建一个对中文字符集支持的基础字体
        BaseFont bfChinese = BaseFont.createFont("STSong-Light",
                "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

        // 使用基础字体对象创建新字体对像，粗体12号红色字
        Font font = new Font(bfChinese, 12, Font.BOLD);
        font.setColor(255, 0, 0); //设置文字颜色
        Document document = new Document(PageSize.A4); // 创建document对象

        PdfWriter.getInstance(document, new FileOutputStream("d:/tablePDF.pdf"));
        document.open(); // 打开文档

        String title = "XX小学一年二班课程表"; // 文档内容
        Paragraph paragraph = new Paragraph(title, font); // 创建段落，并设置字体
        paragraph.setAlignment(Paragraph.ALIGN_CENTER); // 设置段落居中
        document.add(paragraph); // 将段落添加到文档中

        PdfPTable table = new PdfPTable(6); // 建立一个6列的空白表格对象
        table.setSpacingBefore(30f); // 设置表格上面空白宽度

        String[] tableTitle = {"", "星期一", "星期二","星期三", "星期四", "星期五"};

        for (int i = 0; i < tableTitle.length; i++) {

            paragraph = new Paragraph(tableTitle[i], new Font(bfChinese, 10,Font.BOLD));

            PdfPCell cell = new PdfPCell(paragraph); // 建立一个单元格
            // 设置内容水平居中显示
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            // 设置垂直居中
            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.addCell(cell);
        }

        for (int i = 0; i < context.length; i++) {
            for (int j = 0; j < context[i].length; j++) {
                PdfPCell cell = new PdfPCell(new Paragraph(context[i][j],
                        new Font(bfChinese, 10))); // 建立一个单元格

                // 设置内容水平居中显示
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);//设置垂直居中
                table.addCell(cell);
            }
        }
        document.add(table);
        document.close();
    }

}
